home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / byte0487.arc / TELLO.ARC / TAK.LSP < prev    next >
Text File  |  1980-01-01  |  20KB  |  718 lines

  1. ; TAK
  2.  
  3. (defun tak (x y z)
  4.   (declare (type fixnum x y z))
  5.   (if (not (< y x))                ;xy
  6.       z
  7.       (tak (tak (1- x) y z)
  8.        (tak (1- y) z x)
  9.        (tak (1- z) x y))))
  10.  
  11. ; TAK with the tail recursion taken out.
  12. (defun trtak (x y z)
  13.   (declare (type fixnum x y z))
  14.   (loop (if (not (< y x))
  15.         (return z)
  16.         (psetq x (tak (1- x) y z)
  17.            y (tak (1- y) z x)
  18.            z (tak (1- z) x y)))))
  19.  
  20. (define-timer tak "Tak" (tak 18. 12. 6.))
  21. (define-timer trtak "Tak with Tail Recusion eliminated" (trtak 18. 12. 6.))
  22.  
  23. (qa-attempt "Tak" (tak 18. 12. 6.) 7)
  24. (qa-attempt "Tak with Tail Recusion eliminated" (trtak 18. 12. 6.) 7)
  25.  
  26. ; STAK
  27. ; TAK using special binding in place of parameter passing.
  28.  
  29. (defvar *x*)
  30. (defvar *y*)
  31. (defvar *z*)
  32. (proclaim '(type fixnum *x* *y* *z*))
  33.  
  34. (defun stak (*x* *y* *z*)
  35.   (stak-aux))
  36.  
  37. (defun stak-aux ()
  38.   (if (not (< *y* *x*))                ;xy
  39.       *z*
  40.       (let ((*x* (let ((*x* (1- *x*))
  41.                (*y* *y*)
  42.                (*z* *z*))
  43.            (stak-aux)))
  44.         (*y* (let ((*x* (1- *y*))
  45.                (*y* *z*)
  46.                (*z* *x*))
  47.            (stak-aux)))
  48.         (*z* (let ((*x* (1- *z*))
  49.                (*y* *x*)
  50.                (*z* *y*))
  51.            (stak-aux))))
  52.     (stak-aux))))
  53.  
  54. (define-timer stak "STak" (stak 18. 12. 6.))
  55. (qa-attempt "STak" (stak 18. 12. 6.) 7)
  56.  
  57. ; CTAK
  58. ; TAK using CATCH/THROW.
  59.  
  60. (defun ctak (x y z)
  61.   (declare (type fixnum x y z))
  62.   (catch 'ctak (ctak-aux x y z)))
  63.  
  64. (defun ctak-aux (x y z)
  65.   (declare (type fixnum x y z))
  66.   (cond ((not (< y x))                ;xy
  67.      (throw 'ctak z))
  68.     (t (ctak-aux
  69.          (catch 'ctak
  70.            (ctak-aux (1- x)
  71.              y
  72.              z))
  73.          (catch 'ctak
  74.            (ctak-aux (1- y)
  75.              z
  76.              x))
  77.          (catch 'ctak
  78.            (ctak-aux (1- z)
  79.              x
  80.              y))))))
  81.  
  82. (define-timer ctak "CTak" (ctak 18. 12. 6.))
  83. (qa-attempt "CTak" (ctak 18. 12. 6.) 7)
  84.  
  85. ; TAKL
  86.  
  87. (defun listn (n)
  88.     (if (not (= 0 n))
  89.     (cons n (listn (1- n)))))
  90.  
  91. (defvar 18l )(setq 18l (listn 18))
  92. (defvar 12l )(setq 12l (listn 12))
  93. (defvar 6l  )(setq 6l  (listn 6))
  94.  
  95. (defun mas (x y z)
  96.   (declare (type list x y z))
  97.   (if (not (shorterp y x))
  98.       z
  99.       (mas (mas (cdr x) y z)
  100.        (mas (cdr y) z x)
  101.        (mas (cdr z) x y))))
  102.  
  103. (defun shorterp (x y)
  104.   (declare (type list x y))
  105.   (and y (or (null x)
  106.          (shorterp (cdr x)
  107.                (cdr y)))))
  108.  
  109. (define-timer takl "TakL" (mas 18l 12l 6l))
  110. (qa-attempt "TakL" (mas 18l 12l 6l) (7 6 5 4 3 2 1))
  111.  
  112. ; TAKR
  113. ; Gross Version to try to trash cache.
  114.  
  115. (define-timer takr "TakR" (tak0 18. 12. 6.))
  116. (qa-attempt "TakR" (tak0 18. 12. 6.) 7)
  117.  
  118. (DEFUN TAK0 (X Y Z)
  119.   (declare (type fixnum x y z))
  120.     (COND ((NOT (< Y X)) Z)
  121.       (T (TAK1 (TAK37 (1- X) Y Z)
  122.            (TAK11 (1- Y) Z X)
  123.            (TAK17 (1- Z) X Y)))))
  124. (DEFUN TAK1 (X Y Z)
  125.   (declare (type fixnum x y z))
  126.     (COND ((NOT (< Y X)) Z)
  127.       (T (TAK2 (TAK74 (1- X) Y Z)
  128.            (TAK22 (1- Y) Z X)
  129.            (TAK34 (1- Z) X Y)))))
  130. (DEFUN TAK2 (X Y Z)
  131.   (declare (type fixnum x y z))
  132.     (COND ((NOT (< Y X)) Z)
  133.       (T (TAK3 (TAK11 (1- X) Y Z)
  134.            (TAK33 (1- Y) Z X)
  135.            (TAK51 (1- Z) X Y)))))
  136. (DEFUN TAK3 (X Y Z)
  137.   (declare (type fixnum x y z))
  138.     (COND ((NOT (< Y X)) Z)
  139.       (T (TAK4 (TAK48 (1- X) Y Z)
  140.            (TAK44 (1- Y) Z X)
  141.            (TAK68 (1- Z) X Y)))))
  142. (DEFUN TAK4 (X Y Z)
  143.   (declare (type fixnum x y z))
  144.     (COND ((NOT (< Y X)) Z)
  145.       (T (TAK5 (TAK85 (1- X) Y Z)
  146.            (TAK55 (1- Y) Z X)
  147.            (TAK85 (1- Z) X Y)))))
  148. (DEFUN TAK5 (X Y Z)
  149.   (declare (type fixnum x y z))
  150.     (COND ((NOT (< Y X)) Z)
  151.       (T (TAK6 (TAK22 (1- X) Y Z)
  152.            (TAK66 (1- Y) Z X)
  153.            (TAK2 (1- Z) X Y)))))
  154. (DEFUN TAK6 (X Y Z)
  155.   (declare (type fixnum x y z))
  156.     (COND ((NOT (< Y X)) Z)
  157.       (T (TAK7 (TAK59 (1- X) Y Z)
  158.            (TAK77 (1- Y) Z X)
  159.            (TAK19 (1- Z) X Y)))))
  160. (DEFUN TAK7 (X Y Z)
  161.   (declare (type fixnum x y z))
  162.     (COND ((NOT (< Y X)) Z)
  163.       (T (TAK8 (TAK96 (1- X) Y Z)
  164.            (TAK88 (1- Y) Z X)
  165.            (TAK36 (1- Z) X Y)))))
  166. (DEFUN TAK8 (X Y Z)
  167.   (declare (type fixnum x y z))
  168.     (COND ((NOT (< Y X)) Z)
  169.       (T (TAK9 (TAK33 (1- X) Y Z)
  170.            (TAK99 (1- Y) Z X)
  171.            (TAK53 (1- Z) X Y)))))
  172. (DEFUN TAK9 (X Y Z)
  173.   (declare (type fixnum x y z))
  174.     (COND ((NOT (< Y X)) Z)
  175.       (T (TAK10 (TAK70 (1- X) Y Z)
  176.             (TAK10 (1- Y) Z X)
  177.             (TAK70 (1- Z) X Y)))))
  178. (DEFUN TAK10 (X Y Z)
  179.   (declare (type fixnum x y z))
  180.     (COND ((NOT (< Y X)) Z)
  181.       (T (TAK11 (TAK7 (1- X) Y Z)
  182.             (TAK21 (1- Y) Z X)
  183.             (TAK87 (1- Z) X Y)))))
  184. (DEFUN TAK11 (X Y Z)
  185.   (declare (type fixnum x y z))
  186.     (COND ((NOT (< Y X)) Z)
  187.       (T (TAK12 (TAK44 (1- X) Y Z)
  188.             (TAK32 (1- Y) Z X)
  189.             (TAK4 (1- Z) X Y)))))
  190. (DEFUN TAK12 (X Y Z)
  191.   (declare (type fixnum x y z))
  192.     (COND ((NOT (< Y X)) Z)
  193.       (T (TAK13 (TAK81 (1- X) Y Z)
  194.             (TAK43 (1- Y) Z X)
  195.             (TAK21 (1- Z) X Y)))))
  196. (DEFUN TAK13 (X Y Z)
  197.   (declare (type fixnum x y z))
  198.     (COND ((NOT (< Y X)) Z)
  199.       (T (TAK14 (TAK18 (1- X) Y Z)
  200.             (TAK54 (1- Y) Z X)
  201.             (TAK38 (1- Z) X Y)))))
  202. (DEFUN TAK14 (X Y Z)
  203.   (declare (type fixnum x y z))
  204.     (COND ((NOT (< Y X)) Z)
  205.       (T (TAK15 (TAK55 (1- X) Y Z)
  206.             (TAK65 (1- Y) Z X)
  207.             (TAK55 (1- Z) X Y)))))
  208. (DEFUN TAK15 (X Y Z)
  209.   (declare (type fixnum x y z))
  210.     (COND ((NOT (< Y X)) Z)
  211.       (T (TAK16 (TAK92 (1- X) Y Z)
  212.             (TAK76 (1- Y) Z X)
  213.             (TAK72 (1- Z) X Y)))))
  214. (DEFUN TAK16 (X Y Z)
  215.   (declare (type fixnum x y z))
  216.     (COND ((NOT (< Y X)) Z)
  217.       (T (TAK17 (TAK29 (1- X) Y Z)
  218.             (TAK87 (1- Y) Z X)
  219.             (TAK89 (1- Z) X Y)))))
  220. (DEFUN TAK17 (X Y Z)
  221.   (declare (type fixnum x y z))
  222.     (COND ((NOT (< Y X)) Z)
  223.       (T (TAK18 (TAK66 (1- X) Y Z)
  224.             (TAK98 (1- Y) Z X)
  225.             (TAK6 (1- Z) X Y)))))
  226. (DEFUN TAK18 (X Y Z)
  227.   (declare (type fixnum x y z))
  228.     (COND ((NOT (< Y X)) Z)
  229.       (T (TAK19 (TAK3 (1- X) Y Z)
  230.             (TAK9 (1- Y) Z X)
  231.             (TAK23 (1- Z) X Y)))))
  232. (DEFUN TAK19 (X Y Z)
  233.   (declare (type fixnum x y z))
  234.     (COND ((NOT (< Y X)) Z)
  235.       (T (TAK20 (TAK40 (1- X) Y Z)
  236.             (TAK20 (1- Y) Z X)
  237.             (TAK40 (1- Z) X Y)))))
  238. (DEFUN TAK20 (X Y Z)
  239.   (declare (type fixnum x y z))
  240.     (COND ((NOT (< Y X)) Z)
  241.       (T (TAK21 (TAK77 (1- X) Y Z)
  242.             (TAK31 (1- Y) Z X)
  243.             (TAK57 (1- Z) X Y)))))
  244. (DEFUN TAK21 (X Y Z)
  245.   (declare (type fixnum x y z))
  246.     (COND ((NOT (< Y X)) Z)
  247.       (T (TAK22 (TAK14 (1- X) Y Z)
  248.             (TAK42 (1- Y) Z X)
  249.             (TAK74 (1- Z) X Y)))))
  250. (DEFUN TAK22 (X Y Z)
  251.   (declare (type fixnum x y z))
  252.     (COND ((NOT (< Y X)) Z)
  253.       (T (TAK23 (TAK51 (1- X) Y Z)
  254.             (TAK53 (1- Y) Z X)
  255.             (TAK91 (1- Z) X Y)))))
  256. (DEFUN TAK23 (X Y Z)
  257.   (declare (type fixnum x y z))
  258.     (COND ((NOT (< Y X)) Z)
  259.       (T (TAK24 (TAK88 (1- X) Y Z)
  260.             (TAK64 (1- Y) Z X)
  261.             (TAK8 (1- Z) X Y)))))
  262. (DEFUN TAK24 (X Y Z)
  263.   (declare (type fixnum x y z))
  264.     (COND ((NOT (< Y X)) Z)
  265.       (T (TAK25 (TAK25 (1- X) Y Z)
  266.             (TAK75 (1- Y) Z X)
  267.             (TAK25 (1- Z) X Y)))))
  268. (DEFUN TAK25 (X Y Z)
  269.   (declare (type fixnum x y z))
  270.     (COND ((NOT (< Y X)) Z)
  271.       (T (TAK26 (TAK62 (1- X) Y Z)
  272.             (TAK86 (1- Y) Z X)
  273.             (TAK42 (1- Z) X Y)))))
  274. (DEFUN TAK26 (X Y Z)
  275.   (declare (type fixnum x y z))
  276.     (COND ((NOT (< Y X)) Z)
  277.       (T (TAK27 (TAK99 (1- X) Y Z)
  278.             (TAK97 (1- Y) Z X)
  279.             (TAK59 (1- Z) X Y)))))
  280. (DEFUN TAK27 (X Y Z)
  281.   (declare (type fixnum x y z))
  282.     (COND ((NOT (< Y X)) Z)
  283.       (T (TAK28 (TAK36 (1- X) Y Z)
  284.             (TAK8 (1- Y) Z X)
  285.             (TAK76 (1- Z) X Y)))))
  286. (DEFUN TAK28 (X Y Z)
  287.   (declare (type fixnum x y z))
  288.     (COND ((NOT (< Y X)) Z)
  289.       (T (TAK29 (TAK73 (1- X) Y Z)
  290.             (TAK19 (1- Y) Z X)
  291.             (TAK93 (1- Z) X Y)))))
  292. (DEFUN TAK29 (X Y Z)
  293.   (declare (type fixnum x y z))
  294.     (COND ((NOT (< Y X)) Z)
  295.       (T (TAK30 (TAK10 (1- X) Y Z)
  296.             (TAK30 (1- Y) Z X)
  297.             (TAK10 (1- Z) X Y)))))
  298. (DEFUN TAK30 (X Y Z)
  299.   (declare (type fixnum x y z))
  300.     (COND ((NOT (< Y X)) Z)
  301.       (T (TAK31 (TAK47 (1- X) Y Z)
  302.             (TAK41 (1- Y) Z X)
  303.             (TAK27 (1- Z) X Y)))))
  304. (DEFUN TAK31 (X Y Z)
  305.   (declare (type fixnum x y z))
  306.     (COND ((NOT (< Y X)) Z)
  307.       (T (TAK32 (TAK84 (1- X) Y Z)
  308.             (TAK52 (1- Y) Z X)
  309.             (TAK44 (1- Z) X Y)))))
  310. (DEFUN TAK32 (X Y Z)
  311.   (declare (type fixnum x y z))
  312.     (COND ((NOT (< Y X)) Z)
  313.       (T (TAK33 (TAK21 (1- X) Y Z)
  314.             (TAK63 (1- Y) Z X)
  315.             (TAK61 (1- Z) X Y)))))
  316. (DEFUN TAK33 (X Y Z)
  317.   (declare (type fixnum x y z))
  318.     (COND ((NOT (< Y X)) Z)
  319.       (T (TAK34 (TAK58 (1- X) Y Z)
  320.             (TAK74 (1- Y) Z X)
  321.             (TAK78 (1- Z) X Y)))))
  322. (DEFUN TAK34 (X Y Z)
  323.   (declare (type fixnum x y z))
  324.     (COND ((NOT (< Y X)) Z)
  325.       (T (TAK35 (TAK95 (1- X) Y Z)
  326.             (TAK85 (1- Y) Z X)
  327.             (TAK95 (1- Z) X Y)))))
  328. (DEFUN TAK35 (X Y Z)
  329.   (declare (type fixnum x y z))
  330.     (COND ((NOT (< Y X)) Z)
  331.       (T (TAK36 (TAK32 (1- X) Y Z)
  332.             (TAK96 (1- Y) Z X)
  333.             (TAK12 (1- Z) X Y)))))
  334. (DEFUN TAK36 (X Y Z)
  335.   (declare (type fixnum x y z))
  336.     (COND ((NOT (< Y X)) Z)
  337.       (T (TAK37 (TAK69 (1- X) Y Z)
  338.             (TAK7 (1- Y) Z X)
  339.             (TAK29 (1- Z) X Y)))))
  340. (DEFUN TAK37 (X Y Z)
  341.   (declare (type fixnum x y z))
  342.     (COND ((NOT (< Y X)) Z)
  343.       (T (TAK38 (TAK6 (1- X) Y Z)
  344.             (TAK18 (1- Y) Z X)
  345.             (TAK46 (1- Z) X Y)))))
  346. (DEFUN TAK38 (X Y Z)
  347.   (declare (type fixnum x y z))
  348.     (COND ((NOT (< Y X)) Z)
  349.       (T (TAK39 (TAK43 (1- X) Y Z)
  350.             (TAK29 (1- Y) Z X)
  351.             (TAK63 (1- Z) X Y)))))
  352. (DEFUN TAK39 (X Y Z)
  353.   (declare (type fixnum x y z))
  354.     (COND ((NOT (< Y X)) Z)
  355.       (T (TAK40 (TAK80 (1- X) Y Z)
  356.             (TAK40 (1- Y) Z X)
  357.             (TAK80 (1- Z) X Y)))))
  358. (DEFUN TAK40 (X Y Z)
  359.   (declare (type fixnum x y z))
  360.     (COND ((NOT (< Y X)) Z)
  361.       (T (TAK41 (TAK17 (1- X) Y Z)
  362.             (TAK51 (1- Y) Z X)
  363.             (TAK97 (1- Z) X Y)))))
  364. (DEFUN TAK41 (X Y Z)
  365.   (declare (type fixnum x y z))
  366.     (COND ((NOT (< Y X)) Z)
  367.       (T (TAK42 (TAK54 (1- X) Y Z)
  368.             (TAK62 (1- Y) Z X)
  369.             (TAK14 (1- Z) X Y)))))
  370. (DEFUN TAK42 (X Y Z)
  371.   (declare (type fixnum x y z))
  372.     (COND ((NOT (< Y X)) Z)
  373.       (T (TAK43 (TAK91 (1- X) Y Z)
  374.             (TAK73 (1- Y) Z X)
  375.             (TAK31 (1- Z) X Y)))))
  376. (DEFUN TAK43 (X Y Z)
  377.   (declare (type fixnum x y z))
  378.     (COND ((NOT (< Y X)) Z)
  379.       (T (TAK44 (TAK28 (1- X) Y Z)
  380.             (TAK84 (1- Y) Z X)
  381.             (TAK48 (1- Z) X Y)))))
  382. (DEFUN TAK44 (X Y Z)
  383.   (declare (type fixnum x y z))
  384.     (COND ((NOT (< Y X)) Z)
  385.       (T (TAK45 (TAK65 (1- X) Y Z)
  386.             (TAK95 (1- Y) Z X)
  387.             (TAK65 (1- Z) X Y)))))
  388. (DEFUN TAK45 (X Y Z)
  389.   (declare (type fixnum x y z))
  390.     (COND ((NOT (< Y X)) Z)
  391.       (T (TAK46 (TAK2 (1- X) Y Z)
  392.             (TAK6 (1- Y) Z X)
  393.             (TAK82 (1- Z) X Y)))))
  394. (DEFUN TAK46 (X Y Z)
  395.   (declare (type fixnum x y z))
  396.     (COND ((NOT (< Y X)) Z)
  397.       (T (TAK47 (TAK39 (1- X) Y Z)
  398.             (TAK17 (1- Y) Z X)
  399.             (TAK99 (1- Z) X Y)))))
  400. (DEFUN TAK47 (X Y Z)
  401.   (declare (type fixnum x y z))
  402.     (COND ((NOT (< Y X)) Z)
  403.       (T (TAK48 (TAK76 (1- X) Y Z)
  404.             (TAK28 (1- Y) Z X)
  405.             (TAK16 (1- Z) X Y)))))
  406. (DEFUN TAK48 (X Y Z)
  407.   (declare (type fixnum x y z))
  408.     (COND ((NOT (< Y X)) Z)
  409.       (T (TAK49 (TAK13 (1- X) Y Z)
  410.             (TAK39 (1- Y) Z X)
  411.             (TAK33 (1- Z) X Y)))))
  412. (DEFUN TAK49 (X Y Z)
  413.   (declare (type fixnum x y z))
  414.     (COND ((NOT (< Y X)) Z)
  415.       (T (TAK50 (TAK50 (1- X) Y Z)
  416.             (TAK50 (1- Y) Z X)
  417.             (TAK50 (1- Z) X Y)))))
  418. (DEFUN TAK50 (X Y Z)
  419.   (declare (type fixnum x y z))
  420.     (COND ((NOT (< Y X)) Z)
  421.       (T (TAK51 (TAK87 (1- X) Y Z)
  422.             (TAK61 (1- Y) Z X)
  423.             (TAK67 (1- Z) X Y)))))
  424. (DEFUN TAK51 (X Y Z)
  425.   (declare (type fixnum x y z))
  426.     (COND ((NOT (< Y X)) Z)
  427.       (T (TAK52 (TAK24 (1- X) Y Z)
  428.             (TAK72 (1- Y) Z X)
  429.             (TAK84 (1- Z) X Y)))))
  430. (DEFUN TAK52 (X Y Z)
  431.   (declare (type fixnum x y z))
  432.     (COND ((NOT (< Y X)) Z)
  433.       (T (TAK53 (TAK61 (1- X) Y Z)
  434.             (TAK83 (1- Y) Z X)
  435.             (TAK1 (1- Z) X Y)))))
  436. (DEFUN TAK53 (X Y Z)
  437.   (declare (type fixnum x y z))
  438.     (COND ((NOT (< Y X)) Z)
  439.       (T (TAK54 (TAK98 (1- X) Y Z)
  440.             (TAK94 (1- Y) Z X)
  441.             (TAK18 (1- Z) X Y)))))
  442. (DEFUN TAK54 (X Y Z)
  443.   (declare (type fixnum x y z))
  444.     (COND ((NOT (< Y X)) Z)
  445.       (T (TAK55 (TAK35 (1- X) Y Z)
  446.             (TAK5 (1- Y) Z X)
  447.             (TAK35 (1- Z) X Y)))))
  448. (DEFUN TAK55 (X Y Z)
  449.   (declare (type fixnum x y z))
  450.     (COND ((NOT (< Y X)) Z)
  451.       (T (TAK56 (TAK72 (1- X) Y Z)
  452.             (TAK16 (1- Y) Z X)
  453.             (TAK52 (1- Z) X Y)))))
  454. (DEFUN TAK56 (X Y Z)
  455.   (declare (type fixnum x y z))
  456.     (COND ((NOT (< Y X)) Z)
  457.       (T (TAK57 (TAK9 (1- X) Y Z)
  458.             (TAK27 (1- Y) Z X)
  459.             (TAK69 (1- Z) X Y)))))
  460. (DEFUN TAK57 (X Y Z)
  461.   (declare (type fixnum x y z))
  462.     (COND ((NOT (< Y X)) Z)
  463.       (T (TAK58 (TAK46 (1- X) Y Z)
  464.             (TAK38 (1- Y) Z X)
  465.             (TAK86 (1- Z) X Y)))))
  466. (DEFUN TAK58 (X Y Z)
  467.   (declare (type fixnum x y z))
  468.     (COND ((NOT (< Y X)) Z)
  469.       (T (TAK59 (TAK83 (1- X) Y Z)
  470.             (TAK49 (1- Y) Z X)
  471.             (TAK3 (1- Z) X Y)))))
  472. (DEFUN TAK59 (X Y Z)
  473.   (declare (type fixnum x y z))
  474.     (COND ((NOT (< Y X)) Z)
  475.       (T (TAK60 (TAK20 (1- X) Y Z)
  476.             (TAK60 (1- Y) Z X)
  477.             (TAK20 (1- Z) X Y)))))
  478. (DEFUN TAK60 (X Y Z)
  479.   (declare (type fixnum x y z))
  480.     (COND ((NOT (< Y X)) Z)
  481.       (T (TAK61 (TAK57 (1- X) Y Z)
  482.             (TAK71 (1- Y) Z X)
  483.             (TAK37 (1- Z) X Y)))))
  484. (DEFUN TAK61 (X Y Z)
  485.   (declare (type fixnum x y z))
  486.     (COND ((NOT (< Y X)) Z)
  487.       (T (TAK62 (TAK94 (1- X) Y Z)
  488.             (TAK82 (1- Y) Z X)
  489.             (TAK54 (1- Z) X Y)))))
  490. (DEFUN TAK62 (X Y Z)
  491.   (declare (type fixnum x y z))
  492.     (COND ((NOT (< Y X)) Z)
  493.       (T (TAK63 (TAK31 (1- X) Y Z)
  494.             (TAK93 (1- Y) Z X)
  495.             (TAK71 (1- Z) X Y)))))
  496. (DEFUN TAK63 (X Y Z)
  497.   (declare (type fixnum x y z))
  498.     (COND ((NOT (< Y X)) Z)
  499.       (T (TAK64 (TAK68 (1- X) Y Z)
  500.             (TAK4 (1- Y) Z X)
  501.             (TAK88 (1- Z) X Y)))))
  502. (DEFUN TAK64 (X Y Z)
  503.   (declare (type fixnum x y z))
  504.     (COND ((NOT (< Y X)) Z)
  505.       (T (TAK65 (TAK5 (1- X) Y Z)
  506.             (TAK15 (1- Y) Z X)
  507.             (TAK5 (1- Z) X Y)))))
  508. (DEFUN TAK65 (X Y Z)
  509.   (declare (type fixnum x y z))
  510.     (COND ((NOT (< Y X)) Z)
  511.       (T (TAK66 (TAK42 (1- X) Y Z)
  512.             (TAK26 (1- Y) Z X)
  513.             (TAK22 (1- Z) X Y)))))
  514. (DEFUN TAK66 (X Y Z)
  515.   (declare (type fixnum x y z))
  516.     (COND ((NOT (< Y X)) Z)
  517.       (T (TAK67 (TAK79 (1- X) Y Z)
  518.             (TAK37 (1- Y) Z X)
  519.             (TAK39 (1- Z) X Y)))))
  520. (DEFUN TAK67 (X Y Z)
  521.   (declare (type fixnum x y z))
  522.     (COND ((NOT (< Y X)) Z)
  523.       (T (TAK68 (TAK16 (1- X) Y Z)
  524.             (TAK48 (1- Y) Z X)
  525.             (TAK56 (1- Z) X Y)))))
  526. (DEFUN TAK68 (X Y Z)
  527.   (declare (type fixnum x y z))
  528.     (COND ((NOT (< Y X)) Z)
  529.       (T (TAK69 (TAK53 (1- X) Y Z)
  530.             (TAK59 (1- Y) Z X)
  531.             (TAK73 (1- Z) X Y)))))
  532. (DEFUN TAK69 (X Y Z)
  533.   (declare (type fixnum x y z))
  534.     (COND ((NOT (< Y X)) Z)
  535.       (T (TAK70 (TAK90 (1- X) Y Z)
  536.             (TAK70 (1- Y) Z X)
  537.             (TAK90 (1- Z) X Y)))))
  538. (DEFUN TAK70 (X Y Z)
  539.   (declare (type fixnum x y z))
  540.     (COND ((NOT (< Y X)) Z)
  541.       (T (TAK71 (TAK27 (1- X) Y Z)
  542.             (TAK81 (1- Y) Z X)
  543.             (TAK7 (1- Z) X Y)))))
  544. (DEFUN TAK71 (X Y Z)
  545.   (declare (type fixnum x y z))
  546.     (COND ((NOT (< Y X)) Z)
  547.       (T (TAK72 (TAK64 (1- X) Y Z)
  548.             (TAK92 (1- Y) Z X)
  549.             (TAK24 (1- Z) X Y)))))
  550. (DEFUN TAK72 (X Y Z)
  551.   (declare (type fixnum x y z))
  552.     (COND ((NOT (< Y X)) Z)
  553.       (T (TAK73 (TAK1 (1- X) Y Z)
  554.             (TAK3 (1- Y) Z X)
  555.             (TAK41 (1- Z) X Y)))))
  556. (DEFUN TAK73 (X Y Z)
  557.   (declare (type fixnum x y z))
  558.     (COND ((NOT (< Y X)) Z)
  559.       (T (TAK74 (TAK38 (1- X) Y Z)
  560.             (TAK14 (1- Y) Z X)
  561.             (TAK58 (1- Z) X Y)))))
  562. (DEFUN TAK74 (X Y Z)
  563.   (declare (type fixnum x y z))
  564.     (COND ((NOT (< Y X)) Z)
  565.       (T (TAK75 (TAK75 (1- X) Y Z)
  566.             (TAK25 (1- Y) Z X)
  567.             (TAK75 (1- Z) X Y)))))
  568. (DEFUN TAK75 (X Y Z)
  569.   (declare (type fixnum x y z))
  570.     (COND ((NOT (< Y X)) Z)
  571.       (T (TAK76 (TAK12 (1- X) Y Z)
  572.             (TAK36 (1- Y) Z X)
  573.             (TAK92 (1- Z) X Y)))))
  574. (DEFUN TAK76 (X Y Z)
  575.   (declare (type fixnum x y z))
  576.     (COND ((NOT (< Y X)) Z)
  577.       (T (TAK77 (TAK49 (1- X) Y Z)
  578.             (TAK47 (1- Y) Z X)
  579.             (TAK9 (1- Z) X Y)))))
  580. (DEFUN TAK77 (X Y Z)
  581.   (declare (type fixnum x y z))
  582.     (COND ((NOT (< Y X)) Z)
  583.       (T (TAK78 (TAK86 (1- X) Y Z)
  584.             (TAK58 (1- Y) Z X)
  585.             (TAK26 (1- Z) X Y)))))
  586. (DEFUN TAK78 (X Y Z)
  587.   (declare (type fixnum x y z))
  588.     (COND ((NOT (< Y X)) Z)
  589.       (T (TAK79 (TAK23 (1- X) Y Z)
  590.             (TAK69 (1- Y) Z X)
  591.             (TAK43 (1- Z) X Y)))))
  592. (DEFUN TAK79 (X Y Z)
  593.   (declare (type fixnum x y z))
  594.     (COND ((NOT (< Y X)) Z)
  595.       (T (TAK80 (TAK60 (1- X) Y Z)
  596.             (TAK80 (1- Y) Z X)
  597.             (TAK60 (1- Z) X Y)))))
  598. (DEFUN TAK80 (X Y Z)
  599.   (declare (type fixnum x y z))
  600.     (COND ((NOT (< Y X)) Z)
  601.       (T (TAK81 (TAK97 (1- X) Y Z)
  602.             (TAK91 (1- Y) Z X)
  603.             (TAK77 (1- Z) X Y)))))
  604. (DEFUN TAK81 (X Y Z)
  605.   (declare (type fixnum x y z))
  606.     (COND ((NOT (< Y X)) Z)
  607.       (T (TAK82 (TAK34 (1- X) Y Z)
  608.             (TAK2 (1- Y) Z X)
  609.             (TAK94 (1- Z) X Y)))))
  610. (DEFUN TAK82 (X Y Z)
  611.   (declare (type fixnum x y z))
  612.     (COND ((NOT (< Y X)) Z)
  613.       (T (TAK83 (TAK71 (1- X) Y Z)
  614.             (TAK13 (1- Y) Z X)
  615.             (TAK11 (1- Z) X Y)))))
  616. (DEFUN TAK83 (X Y Z)
  617.   (declare (type fixnum x y z))
  618.     (COND ((NOT (< Y X)) Z)
  619.       (T (TAK84 (TAK8 (1- X) Y Z)
  620.             (TAK24 (1- Y) Z X)
  621.             (TAK28 (1- Z) X Y)))))
  622. (DEFUN TAK84 (X Y Z)
  623.   (declare (type fixnum x y z))
  624.     (COND ((NOT (< Y X)) Z)
  625.       (T (TAK85 (TAK45 (1- X) Y Z)
  626.             (TAK35 (1- Y) Z X)
  627.             (TAK45 (1- Z) X Y)))))
  628. (DEFUN TAK85 (X Y Z)
  629.   (declare (type fixnum x y z))
  630.     (COND ((NOT (< Y X)) Z)
  631.       (T (TAK86 (TAK82 (1- X) Y Z)
  632.             (TAK46 (1- Y) Z X)
  633.             (TAK62 (1- Z) X Y)))))
  634. (DEFUN TAK86 (X Y Z)
  635.   (declare (type fixnum x y z))
  636.     (COND ((NOT (< Y X)) Z)
  637.       (T (TAK87 (TAK19 (1- X) Y Z)
  638.             (TAK57 (1- Y) Z X)
  639.             (TAK79 (1- Z) X Y)))))
  640. (DEFUN TAK87 (X Y Z)
  641.   (declare (type fixnum x y z))
  642.     (COND ((NOT (< Y X)) Z)
  643.       (T (TAK88 (TAK56 (1- X) Y Z)
  644.             (TAK68 (1- Y) Z X)
  645.             (TAK96 (1- Z) X Y)))))
  646. (DEFUN TAK88 (X Y Z)
  647.   (declare (type fixnum x y z))
  648.     (COND ((NOT (< Y X)) Z)
  649.       (T (TAK89 (TAK93 (1- X) Y Z)
  650.             (TAK79 (1- Y) Z X)
  651.             (TAK13 (1- Z) X Y)))))
  652. (DEFUN TAK89 (X Y Z)
  653.   (declare (type fixnum x y z))
  654.     (COND ((NOT (< Y X)) Z)
  655.       (T (TAK90 (TAK30 (1- X) Y Z)
  656.             (TAK90 (1- Y) Z X)
  657.             (TAK30 (1- Z) X Y)))))
  658. (DEFUN TAK90 (X Y Z)
  659.   (declare (type fixnum x y z))
  660.     (COND ((NOT (< Y X)) Z)
  661.       (T (TAK91 (TAK67 (1- X) Y Z)
  662.             (TAK1 (1- Y) Z X)
  663.             (TAK47 (1- Z) X Y)))))
  664. (DEFUN TAK91 (X Y Z)
  665.   (declare (type fixnum x y z))
  666.     (COND ((NOT (< Y X)) Z)
  667.       (T (TAK92 (TAK4 (1- X) Y Z)
  668.             (TAK12 (1- Y) Z X)
  669.             (TAK64 (1- Z) X Y)))))
  670. (DEFUN TAK92 (X Y Z)
  671.   (declare (type fixnum x y z))
  672.     (COND ((NOT (< Y X)) Z)
  673.       (T (TAK93 (TAK41 (1- X) Y Z)
  674.             (TAK23 (1- Y) Z X)
  675.             (TAK81 (1- Z) X Y)))))
  676. (DEFUN TAK93 (X Y Z)
  677.   (declare (type fixnum x y z))
  678.     (COND ((NOT (< Y X)) Z)
  679.       (T (TAK94 (TAK78 (1- X) Y Z)
  680.             (TAK34 (1- Y) Z X)
  681.             (TAK98 (1- Z) X Y)))))
  682. (DEFUN TAK94 (X Y Z)
  683.   (declare (type fixnum x y z))
  684.     (COND ((NOT (< Y X)) Z)
  685.       (T (TAK95 (TAK15 (1- X) Y Z)
  686.             (TAK45 (1- Y) Z X)
  687.             (TAK15 (1- Z) X Y)))))
  688. (DEFUN TAK95 (X Y Z)
  689.   (declare (type fixnum x y z))
  690.     (COND ((NOT (< Y X)) Z)
  691.       (T (TAK96 (TAK52 (1- X) Y Z)
  692.             (TAK56 (1- Y) Z X)
  693.             (TAK32 (1- Z) X Y)))))
  694. (DEFUN TAK96 (X Y Z)
  695.   (declare (type fixnum x y z))
  696.     (COND ((NOT (< Y X)) Z)
  697.       (T (TAK97 (TAK89 (1- X) Y Z)
  698.             (TAK67 (1- Y) Z X)
  699.             (TAK49 (1- Z) X Y)))))
  700. (DEFUN TAK97 (X Y Z)
  701.   (declare (type fixnum x y z))
  702.     (COND ((NOT (< Y X)) Z)
  703.       (T (TAK98 (TAK26 (1- X) Y Z)
  704.             (TAK78 (1- Y) Z X)
  705.             (TAK66 (1- Z) X Y)))))
  706. (DEFUN TAK98 (X Y Z)
  707.   (declare (type fixnum x y z))
  708.     (COND ((NOT (< Y X)) Z)
  709.       (T (TAK99 (TAK63 (1- X) Y Z)
  710.             (TAK89 (1- Y) Z X)
  711.             (TAK83 (1- Z) X Y)))))
  712. (DEFUN TAK99 (X Y Z)
  713.   (declare (type fixnum x y z))
  714.     (COND ((NOT (< Y X)) Z)
  715.       (T (TAK0 (TAK0 (1- X) Y Z)
  716.            (TAK0 (1- Y) Z X)
  717.            (TAK0 (1- Z) X Y)))))
  718.